第零章、计算机概论

CPU实际要处理的数据完全来自于内存(不管是程序还是一般文件数据)。
CPU架构
精简指令集RISC,如ARM架构。目前世界上使用范围最广的CPU就是ARM架构。
复杂指令集CISC。AMD,Intel x86。

第一章、Linux是什么与如何学习

早期的Linux是针对386开发的。Linux提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构,这个架构是沿袭Unix良好的传统来的,所以相当的稳定而功能强大!

Linux参考了标准的POSIX规范。POSIX是可携式操作系统接口的缩写,重点在规范核心与应用程序之间的接口,这是由美国电器与电子工程师学会(IEEE)所发布的一项标准。

Linux其实就是一个操作系统最底层的核心及其提供的核心工具。它是GNU GPL授权模式,所以任何人均可取得源代码与可执行这个核心程序,并且可以修改。此外,因为Linux参考POSIX设计规范,于是相容于Unix操作系统,亦可称为Unix Like的一种。

Linux distributions就是Kernel+Softwares+Tools+可完整安装程序。一般称为可完整安装套件或Linux发布商套件。

由于Linux核心是由工程师写得,由源代码安装到x86计算机上面成为可以执行的binary文件这个过程不是人人都会的,所以早期确实只有工程师对Linux感兴趣。一直到一些社群与商业公司将Linux核心配合自由软件,并提供完整的安装程序且制成光盘,对于一般人来说,Linux才越来越有吸引力。

每个distributions差异性并不大,主要是套件管理方式上的区分为dpkg和RPM。

到底是要买商业版还是社群版的Linux distribution呢?如果是要装在个人计算机上面做为桌面电脑用的, 建议使用社群版,包括Fedora, Ubuntu, OpenSuSE等等。如果是用在服务器上面的, 建议使用商业版本,包括Red Hat, SuSE等。这是因为社群版通常开发者会加入最新的软件,这些软件可能会有一些bug存在。至于商业版则是经过一段时间的磨合后,才将稳定的软件放进去。

Linux的运用场景
企业环境的利用:
网络服务器:
这是Linux当前最热门的应用了!承袭了Unix高稳定性的良好传统,Linux.上面的网络功能特别的稳定与强大!此外,由于GNU计划与Linux的GPL授权模式,让很多优秀的软件都在Linux上面发展,且这些在Linux上面的服务器软件几乎都是自由软件!因此,做为一部网络服务器,例如WWW, Mail Server, File Server等等, Linux绝对是上上之选!当然,这也是Linux的强项!由于Linux server的需求强烈,因此许多硬件厂商推出产品时,还得要特别说明有支持的Linux distributions呢!

关键任务的应用(金融数据库、大型企业网管环境)
由于个人计算机的性能大幅提升且价格便宜,所以金融业与大型企业的环境为了要精实自己机房的机器设备,因此很多企业渐渐的走向Intel相容的x86主机环境。而这些企业所使用的软件大多使用Unix操作系统平台的软件,总不能连过去发展的软件都一口气全部换掉吧!所以,这个时候符合Unix操作系统标准并且可以在x86.上运行的Linux就渐渐崭露头角了!

学术机构的高性能运算任务:
学术机构的研究常常需要自行开发软件,所以对于可作为开发环境的操作系统需求非常的迫切!举例来说,非常多技职体系的科技大学就很需要这方面的环境,好进行一些毕业专题的制作呢!又例如工程界流体力学的数值模式运算、娱乐事业的特效功能处理、软件开发者的工作平台等等。由于Linux的创造者本身就是个计算机性能癖,所以Linux有强大的运算能力;并且Linux具有支持度相当广泛的GCC编译软件,因此Linux在这方面的优势可是相当明显的!

个人使用:
个人电脑:
为了要强化桌面电脑的使用率,Linux与X Window System结合了!要注意的是,X Window System仅只是Linux上面的一套软件,而不是核心喔!所以即使X Window挂了,对Linux也可能不会有直接的影响。

手持系统(PDA、手机):
Android就是Linux核心的一支,专门用来针对手机/平板这类ARM机器所设计的。

嵌入式系统:
包括路由器、防火墙、手机、IP分享器、交换器、机器人控制芯片、家电用品的微计算机控制器等等,都可以是Linux操作系统喔!

云端运用:
云程序
端设备

以服务器或者是嵌入式系统的应用来说,X Window是非必备的软件,因为服务器是要提供用户端来连线的,X Window通常会吃掉很多系统资源。

第二章 主机规划与磁盘划分

并非所有的产品都会支持特定的操作系统,这牵涉到硬件开发商是否有意愿提供适当的驱动程序之故。因此,当我们想要购买或者是升级某些计算机元件时,应该要特别注意该硬件是否有针对您的操作系统提供适当的驱动程序,否则可能买了无法使用。

在Linux系统中,每个设备被当成一个文件来对待,几乎所有的硬件设备文件都在/dev这个目录内。

磁盘分区

整个磁盘的第一个扇区特别的重要,因为他记录了整个磁盘的重要信息。早期磁盘第一个扇区里面含有重要的信息称为MBR格式,但是由于磁盘的容量不断扩大,造成读写上的一些困扰,甚至有些大于2TB以上的磁盘分区已经让某些操作系统无法存取。因此后来又多了一个新的磁盘分区格式,称为GPT。

MSDOS(MBR)与GPT

MSDOS(MBR)分区表格式与限制:
早期的Linux系统为了相容于Windows的磁盘,因此使用的是支持Windows的
MBR (Master Boot Record,主要开机纪录区)的方式来处理开机管理程序与分区表!而开机管理程序纪录区与分区表则通通放在磁盘的第一个扇区,这个扇区通常是512Bytes的大小(旧的磁盘扇区都是512Bytes喔!),所以说,第一个扇区512Bytes会有这两个数据:

  1. 主要开机记录区(Masrer Boot Record,MBR):可以安装开机管理程序的地方,有446Bytes
  2. 分区表(partition table):记录整颗硬盘分区的状态,有64Bytes

Linux安装模式下,磁盘分区的选择(极重要)

目录树结构

Linux内所有的数据都是以文件形态来呈现的,Linux系统最重要的地方就是在于目录树架构。就是以根目录为主,然后向下呈现分支状的目录结构的一种文件架构。


所有的文件都是由根目录(_)衍生来的,当要取得mydata那个文件时,系统就由根目录开始找,最终的文件名为: _home_dmtsai_mydata的意思。

文件系统与目录树的关系(挂载)

挂载就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下,也就是说,进入该目录就可以读取该分区的意思。


假设硬盘分为两个分区 partition1是挂载到根目录,至于 partition2则是挂载到/ home这个目录。这也就是说当我的数据放置在 home 内的各次目录时,数据是放置到partition2的如果不是放在/home下面的目录,那么数据就会被放置到 partition1。

至少两个分区

但记住至少要有两个分区,一个swap分区,一个/分区。swap分区是linux暂时存储数据的交换分区,它主要是把主内存上暂时不用得数据存起来,在需要的时候再调进内存内,且作为swap使用的分区不用指定“mout point”(载入点),既然它作为交换分区,我们理所当然应给它指定大小,它至少要等于系统上实际内存的量,一般来说它的大小是内存的两倍,如果你是16mb的内存,那么swap分区的大小是32mb左右,以此类推。但必须还要注意一点,swap分区不要大于128mb,因为系统不需要太大的交换分区。